Strides are continuously being made towards improving the efficiency of input/output (I/O) processing; however, further enhancements are still needed. As one example, enhancements are needed in the managing of virtual storage used during input/output processing. For instance, improvements are needed in the handling of page faults in pageable mode virtual environments.
Currently, when a guest operating system executing in a pageable mode virtual machine performs an operation that references a page of data that is not currently backed by physical storage, a page fault interruption to the host occurs. The interruption causes context-switching overhead to move from guest to host execution mode; host page allocation; host page table fix-up; and another host-initiated context switch to move from host to guest execution mode. The context switching and/or other processing results in a great deal of overhead causing a degradation in efficiency and an increase in costs.
Other aspects of virtual storage management, including, for instance, the pining of pages in physical storage and the unpinning of pinned pages during the management of guest I/O buffer pages, such as during guest and host queue synchronization that is required for the virtualization of the Queued Direct I/O (QDIO) architecture, also need improving to reduce overhead and decrease costs.
Thus, a need exists for a capability that enhances input/output processing. For example, a need exists for a capability that facilitates management of storage of a pageable mode virtual environment.